Apparatus for redundancy reconfiguration of faculty memories

ABSTRACT

A memory redundancy reconfiguration for N base blocks associated with k redundant blocks. The data will be written into both base blocks and defect-free redundant blocks if the base blocks are defective; k multiplexers MUX Ri  each having N input signals (d 0  to d N−1 ) capable of being connected to k input signals of the redundant blocks; N multiplexers MUX i  each having k+1 input signals from k redundant blocks (R 0  to R k−1 ) and one base block (N i ), capable of being connected to N output signals (q i ); and logic means associated with each multiplexer, to convert the input signals of the multiplexer to its output signal.

FIELD OF THE INVENTION

The present invention generally relates to the field of memory testing and repair. Specifically, the present invention relates to the field of memory Built-in Self-Repair (BISR).

BACKGROUND

With VLSI designs entering multi-million gate count range, the yield of embedded memories is becoming a limiting factor for the overall yield for Integrated Circuit manufacturing. Memory built-in self-repair (BISR) techniques can help improve the yield of embedded memories. The memory BISR capability allows an IC device to continue to function despite the presence of defect(s) in its embedded memories. With memory BISR, faulty or defective memory blocks are identified and replaced with “redundant” memory block(s). These redundant memory blocks are pre-allocated memory blocks within a chip to be used for BISR purposes. By contrast, regular memory blocks are called “base” blocks.

Two methods for memory BISR have been proposed previously by Nicolaidis, et al. (2003). In the first method, as illustrated in FIG. 1, a memory block once identified as faulty is replaced by its closest fault-free block. This fault-free block, used for repair, can either be a base block or a redundant block. In another method, as illustrated in FIG. 2, a memory block identified as faulty can only be replaced by a designated redundant block. Both methods require using multiplexers (MUXes) to perform memory read/write operations for input data pins. The presence of the MUXes will slow down the operating speed of the memory.

SUMMARY OF THE INVENTION

The present invention provides a novel solution to memory BISR. During memory BISR, for a fault-free base block, input data can be written directly into the base block without going through a network of multiplexers (MUXes). This will allow the memory to operate at its intended speed during the write mode of operation.

THE BRIEF DESCRIPTION OF DRAWINGS

The above and other objectives, advantages and features of the invention will become more apparent when considered with the following specifications and accompanying drawings wherein:

FIG. 1 and FIG. 2 show two prior art BISR reconfiguration schemes;

FIG. 3 shows an embedded memory in its write configuration, in accordance with the present invention, where the redundant block is used to write the data if the base block is defective;

FIG. 4 shows an embedded memory in its read configuration, in accordance with the present invention, where the redundant block is used to read out if the base block is either defective or defect-free;

FIG. 5 shows a first embodiment of a multiplexer (MUX) shown in FIG. 3, in accordance with the present invention;

FIG. 6 shows a first embodiment of a multiplexer (MUX) shown in FIG. 4, in accordance with the present invention;

FIG. 7 shows a second embodiment of a multiplexer (MUX) shown in FIG. 3, in accordance with the present invention;

FIG. 8 shows a second embodiment of a multiplexer (MUX) shown in FIG. 4, in accordance with the present invention.

DETAILED DESCRIPTION OF THE INVENTION

The following description is presently contemplated as the best mode of carrying out the present invention. This description is not to be taken in a limiting sense but is made merely for the purpose of describing the principles of the invention. The scope of the invention should be determined by referring to the appended claims.

FIG. 1 shows a prior art memory built-in self-repair (BISR) configuration that includes redundant blocks R₂-R₀ 101-103, base blocks U₃-U₀ 104-107 and multiplexers MUX₃-MUX₀ 108-111. In this configuration, base blocks U₃-U₀ 104-107 are default blocks to be used for standard memory access operations of a chip. If a block, say U₂ 105, is found to be faulty, it can be replaced by a redundant block R₀ 103, R₁ 102, or an “available” base block, U₃ 104. In this case, both base blocks and redundant blocks can be used for memory self-repair purposes.

FIG. 2 shows a prior art memory BISR configuration that includes redundant blocks R₂-R₀ 201-203, base blocks U₃-U₀ 204-207 and multiplexers MUX₃-MUX₀ 208-211. In this configuration, base blocks U₃-U₀ 204-207 are default blocks to be used for standard memory access operations of a chip. If a block, say U₂ 205, is found to be faulty, it can be replaced by a redundant block R₀ 203, R₁, 202 or R₂ 201. In this case, only redundant blocks can be used for memory self-repair purposes.

The embodiment of the present invention, further illustrated in FIG. 3 to FIG. 8, provides the method for a reconfiguration that supports the self-repair operations for the memory with redundant blocks or units. For different function of memory such as read and write, configurations are different in this present invention.

For ease of illustration, we make definitions as follows: A base block of the memory will be called U_(i), with i ranging from 0 to N−1. The redundant blocks will be called R₀ to R_(k−1), where k is the number of pre-allocated redundant blocks within a chip. The multiplexers associated with redundant blocks R₀ to R_(k−1) will be called MUX_(R0) to MUX_(Rk−1). The multiplexers associated with base block U₀ to U_(N−1) will be called MUX₀ to MUX_(N−1). d_(i) designates the input signal of the memory unit (0≦i≦N−1). q_(i) designates the output signal of the memory unit (0≦i≦N−1). The control signals for MUX_(Ri) (0≦i≦K−1) are M^(i) _(j) (0≦j≦N−1). The control signals for MUX_(i) (0≦i≦N−1) are M^(j) _(i) (0≦j≦K−1).

FIG. 3 is an example for the write type configuration where the data may propagate from input signals d₃ to d₀ to base units U₃ to U₀ 304-307 and redundant units R₂ to R₀ 301-303 through the multiplexers MUX_(R2) to MUX_(R0) 308-310. The multiplexer design for write configuration is shown in FIG. 5 and FIG. 7. When M^(i) ₁ is equal to 1, then only d₁ will be written to the redundant block R_(i).

For write configuration, the input signal, d_(i), of the memory unit fans out to U_(i) and MUX_(R0) to MUX_(Rk−1). Each multiplexer MUX_(Ri) has N control signals M^(i) ₀ to M^(i) _(N−1). When one of the MUX control signals is 1, this means a base memory block is defective and a redundant block is needed for the repair operation. When all control signals are 0, there is no need for a repair operation. For example, if block U₀ is defect-free, while U₁ is defective, M⁰ ₁ must be 1 and all the multiplexer's other control inputs, M⁰ ₀, M⁰ ₂ to M⁰ _(N−1), must be zero. The input, d₁, will be stored in redundant block R₀.

For ease of illustration, we make the following definitions: r_(i) represents the state of a redundant block and r_(i) its complementary state. r_(i) will be zero if the redundant block i is defect-free, else the redundant block i is defective. u_(i) represents the state of a base block and u_(i) , its complementary state. u_(i) will be zero if the base block, U_(i), is defect-free, else the base block, U_(i), is defective.

The logic values at the multiplexer control inputs M^(i+1) _(j+1), where 0≦i≦k−2 and 0≦j≦N−2, can be expressed in terms of the states of their associated base blocks U₀ to U_(k) as follows:

${M_{j + 1}^{i + 1} = {\overset{\_}{r_{i + 1}}{u_{j + 1}\begin{bmatrix} {{{{{{\sum\limits_{n = 0}^{j}\; M_{n}^{i}} + {r_{i}{\sum\limits_{n = 0}^{j}\; M_{n}^{i - 1}}} +}...} + {r_{i}r_{i - 1}}}...}\mspace{14mu} r_{1}} \\ {{{{{{\sum\limits_{n = 0}^{j}\; M_{n}^{0}} + {r_{i}r_{i - 1}}}...}\mspace{14mu} r_{0}\overset{\_}{u_{j}}\overset{\_}{u_{j - 1}}}...}\mspace{14mu} \overset{\_}{u_{0}}} \end{bmatrix}}}},\left( {{0 \leq i \leq {k - 2}};{0 \leq j \leq {N - 2}}} \right)$

As can be seen, variable M^(i+1) _(j+1) is equal to 1 if base block, U_(j+1), is defective, the redundant, R_(i+1), is defect-free, and if there exists an integer n<i+1 such that the defect-free redundant block, R_(n), is already assigned to a base unit U_(m) with m<j+1, and the redundant blocks R_(n+1), R_(n+2), . . . , R_(i) are defective.

The logic values at the multiplexer control inputs M⁰ _(j), where 0≦j≦k, can be expressed in terms of the states of their associated base blocks U₀ to U_(k) as follows:

$\begin{matrix} {M_{0}^{0} = {\overset{\_}{r_{0}}u_{0}}} \\ {M_{1}^{0} = {\overset{\_}{r_{0}}u_{0}\overset{\_}{u_{1}}}} \\ {M_{2}^{0} = {\overset{\_}{r_{0}}u_{2}\overset{\_}{u_{1}}\overset{\_}{u_{0}}}} \\ {M_{3}^{0} = {\overset{\_}{r_{0}}u_{3}\overset{\_}{u_{2}}\overset{\_}{u_{1}}\overset{\_}{u_{0}}}} \\ {\; \vdots {~~~~~~~~~~~}} \\ {M_{N - 1}^{0} = {{{\overset{\_}{r_{0}}u_{N - 1}}...}\mspace{20mu} \overset{\_}{u_{2}}\overset{\_}{u_{1}}\overset{\_}{u_{0}}}} \end{matrix}$

As can be seen, variable M⁰ ₀ is equal to 1 if base block U₀ is defective and the redundant block, R₀ is defect-free, otherwise M⁰ ₀ will be zero. Variable M⁰ _(i+1) (0≦i≦N−2) is equal to 1 when base block U_(i+1) is defective, the base blocks, U_(n) (integer n<i+1) are defect-free and the redundant block R₀ is defect-free, otherwise variable M⁰ _(i+1) will be zero.

The logic values at the multiplexer control inputs M^(i) ₀, where 0≦i≦k, can be expressed in terms of the states of their associated base blocks U₀ to U_(k) as follows:

$\begin{matrix} {M_{0}^{0} = {\overset{\_}{r_{0}}u_{0}}} \\ {M_{0}^{1} = {\overset{\_}{r_{1}}\left( {r_{0}u_{0}} \right)}} \\ {M_{0}^{2} = {\overset{\_}{r_{2}}\left( {r_{1}r_{0}u_{0}} \right)}} \\ {\vdots {~~~~~~~~~~~}} \\ {M_{0}^{k - 1} = {\overset{\_}{r_{k - 1}}\left( {{{r_{k - 2}r_{k - 3}}...}\mspace{14mu} r_{1}r_{0}u_{0}} \right)}} \end{matrix}$

As can be seen, variable M^(i+1) ₀ (0≦i≦k−2) is equal to 1 when base block U₀ is defective, the redundant block, R_(i+1), is defect-free and R_(n) (integer n<i+1) are defective, else variable M^(i+1) ₀ will be zero.

FIG. 4 is an example for the read type configuration where the data may propagate from base units, U₃ to U₀ 404-407, and redundant units, R₂ to R₀ 401-403, to output signals, q₄ to q₀ via the multiplexers MUX₃ to MUX₀ 408-410. The multiplexer design for read configuration is shown in FIG. 6 and FIG. 8. When M¹i is equal to 1, then the value in redundant block R₁ will be output to signal q_(i).

For read configuration, the output signal, q_(i), of the memory unit comes from MUX_(i). Each multiplexer MUX_(i) has K control signals M⁰ _(i) to M^(K−1) _(i). When one of the MUX control signals is 1, this means the base memory block i is defective and the value in the redundant block should be the output. When all control signals are 0, the base memory block i is defect-free and the value of it should be the output. For example, if M⁰ ₁ is 1, the value of redundant block R₀ should be output to q₁. The variable M^(i+1) _(j+1) is equal to those in the write configuration.

FIG. 5 and FIG. 7 show two different ways of implementations of the multiplexer used for write configuration in FIG. 3. For both implementations, the signal at d_(j) will be propagated to the redundant block R_(i), when M^(i) ₀, M^(i) ₁, . . . , M^(i) _(j−1), M^(i) _(j), M^(i) _(j+1) . . . , M^(i) _(N−1)=00 . . . 010 . . . 0. When M^(i) ₀=M^(i) ₁= . . . =M^(i) _(j)= . . . M^(i) _(N−1)=0, R_(i) takes the logic value 0.

FIG. 6 and FIG. 8 show two different ways of implementations of the multiplexer used for read configuration in FIG. 4. For both implementations, the signal at R_(j) will be propagated to the output q_(i), when M⁰ _(i), M¹ _(i), . . . M^(j−1) _(i), M^(j) _(i), M^(j+1) _(i) . . . , M^(k−1) _(i)=00 . . . 010 . . . 0. When M⁰ _(i)=M¹ _(i)= . . . =M^(j) _(i)= . . . =M^(k−1) _(i)=0, the signal at U_(i) will be propagated to the output q_(i).

Having thus described presently preferred embodiments of the present invention, it can now be appreciated that the objectives of the invention have been fully achieved. And it will be understood by those skilled in the art that many changes in construction & circuitry, and widely differing embodiments & applications of the invention will suggest themselves without departing from the spirit and scope of the present invention. The disclosures and the description herein are intended to be illustrative and are not in any sense limitation of the invention, more preferably defined in the scope of the invention by the Claims appended hereto and their equivalents. 

1. An apparatus for reconfiguring a set of N base blocks with k redundant blocks in a memory, up to k of N base blocks being likely to be defective, said apparatus comprising: a) using k N-to-1 multiplexer (MUX_(Ri)) to reconfigure the write function, wherein said N-to-1 multiplexer MUX_(Ri) has N input signals (d₀ to d_(N−1)) with the output of said N-to-1 multiplexer capable of being connected to the input signal of one of said k redundant blocks; and b) using N k+1-to-1 multiplexers (MUX_(i)) to reconfigure the read function, wherein said k+1-to-1 multiplexer MUX_(i) has k+1 input signals respectively connected from k redundant blocks and one base block input signal, N_(i), with the output of said k+1-to-1 multiplexer capable of being connected to an output signal (q_(i)).
 2. The apparatus of claim 1, wherein said N input signals (d₀ to d_(N−1)) in said write function are connected to the N base blocks (U₀ to U_(N−1)) directly if the base blocks are defect-free.
 3. The apparatus of claim 1, wherein the jth input signal d_(j) of said N input signals (d₀ to d_(N−1)) in said write function is routed to the redundant block, R_(i+1), if base block, U_(j+1), (0≦j≦N−2) is defective, the redundant block, R_(i+1), (0≦i≦k−2) is defect-free, and if there exists an integer n<i+1 such that the defect-free redundant block, R_(n), is already assigned to a base unit U_(m) with m<j+1, and the redundant blocks R_(n+1), R_(n+2), . . . , R_(i) are defective.
 4. The apparatus of claim 2, wherein said N output signals (q₀ to q_(N−1)) in said read function are connected to the N base blocks (U₀ to U_(N−1)) and the K redundant blocks (R₀ to R_(K−1)) via N k+1-to-1 multiplexers (MUX₀ to MUX_(k−1)).
 5. The apparatus of claim 2, wherein the signal at R_(j) will be propagated to the output q_(i), when M⁰ _(i), M¹ _(i), . . . M^(j−1) _(i), M^(j) _(i) . . . , M^(j+1) _(i) . . . , M^(k−1) _(i)=00 . . . 010 . . .
 0. When M⁰ _(i)=M¹ _(i)= . . . =M^(j) _(i)= . . . =M^(k−1) _(i)=0, the signal at U_(i) will be propagated to the output q_(i). 